package com.zyl.blog.common.domain.rbac.vo;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Data;

/**
 * @version v1.0
 * @ProjectName: Personal_Blog
 * @Package: com.zyl.common.domain.rbac.vo
 * @ClassName: LoginResultVO
 * @Description:
 * @Author FinalFantasy
 * @Date 2025/6/24-15:25
 */
@Data
@Builder
@JsonInclude(JsonInclude.Include.NON_NULL)
public class LoginResultVO {

    /**
     * JWT访问令牌（置于Authorization Header）
     *
     * @security 需设置合理过期时间（建议2小时）
     */
    @JsonProperty("token")
    private String token;

    /**
     * 令牌类型（固定为Bearer）
     */
    @JsonProperty("type")
    private String tokenType;

    /**
     * 令牌剩余有效时间（秒）
     *
     * @example 7200
     */
    @JsonProperty("expiresIn")
    private Long expiresIn;

    /** 用户ID */
    @JsonProperty("id")
    private Long id;

}